Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce sparsity patterns #139

Merged
merged 10 commits into from
Jun 27, 2024
Merged

Introduce sparsity patterns #139

merged 10 commits into from
Jun 27, 2024

Conversation

adrhill
Copy link
Owner

@adrhill adrhill commented Jun 26, 2024

This is the second attempt at #114 after #119 got derailed by unrelated compile time issues.


This PR introduces AbstractPatterns that represent sparsity patterns:

AbstractPattern
├── AbstractVectorPattern: used in GradientTracer, ConnectivityTracer
│   └── IndexSetVectorPattern
└── AbstractHessianPattern: used in HessianTracer
    └── IndexSetHessianPattern

Over the last dozens of PRs, we've kept refactoring the Tracer type signatures to accommodate new representations for sparse vectors and sparse matrices, most notably:

Advantages of introducing pattern types:

  • It makes prototyping new ideas like Store patterns in BitMatrices instead of sets #137 much faster, since tracer types don't have to be touched.
  • It allows for the reintroduction of DictHessianPatterns, which can't be split into gradient and hessian fields.
  • PR Add shared Hessian tracer à la Walther #135 showed that dispatching on generic field types such as AbstractSet isn't enough, since AbstractSets can be used in an allocating or non-allocating manner.
    In 135, the proposed workaround was to introduce a new field to the HessianTracer struct. This is problematic for several reasons:
    • It is harder to document than pattern structs, which have individual docstrings
    • If we support new field types, like Store patterns in BitMatrices instead of sets #137, it implies that we always need to implement and maintain two variants, one that allocates and one that mutates
    • If the point above is circumvented, e.g. by using strict inner constructors, this once again puts burden on the documentation and/or users.

Recommended reading order for reviews:

  1. patterns.jl
  2. tracers.jl
  3. updated overload files

@adrhill adrhill added run benchmark Run benchmarks in CI patterns Features regarding sparsity pattern representation labels Jun 26, 2024
@codecov-commenter
Copy link

codecov-commenter commented Jun 26, 2024

Codecov Report

Attention: Patch coverage is 86.17021% with 13 lines in your changes missing coverage. Please review.

Project coverage is 87.20%. Comparing base (b56207b) to head (dbf6071).

Files Patch % Lines
src/tracers.jl 80.64% 6 Missing ⚠️
src/overloads/connectivity_tracer.jl 25.00% 3 Missing ⚠️
src/overloads/gradient_tracer.jl 50.00% 2 Missing ⚠️
src/overloads/hessian_tracer.jl 95.00% 1 Missing ⚠️
src/patterns.jl 95.45% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #139      +/-   ##
==========================================
- Coverage   90.14%   87.20%   -2.95%     
==========================================
  Files          38       39       +1     
  Lines        1614     1618       +4     
==========================================
- Hits         1455     1411      -44     
- Misses        159      207      +48     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

Benchmark result

Judge result

Benchmark Report for /home/runner/work/SparseConnectivityTracer.jl/SparseConnectivityTracer.jl

Job Properties

  • Time of benchmarks:
    • Target: 26 Jun 2024 - 14:44
    • Baseline: 26 Jun 2024 - 15:00
  • Package commits:
    • Target: 5643e2
    • Baseline: b56207
  • Julia commits:
    • Target: 48d4fd
    • Baseline: 48d4fd
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "operator", "N=24"] 0.94 (5%) ✅ 1.00 (1%)
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "operator", "N=6"] 0.95 (5%) ✅ 1.00 (1%)
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Conv", "size=128x128x3"] 1.32 (5%) ❌ 1.00 (1%)
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Conv", "size=128x128x3"] 1.08 (5%) ❌ 1.00 (1%)
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Conv", "size=28x28x3"] 1.06 (5%) ❌ 1.00 (1%)
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "ODE", "N=6"] 0.95 (5%) ✅ 1.00 (1%)
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "operator", "N=6"] 0.94 (5%) ✅ 1.00 (1%)
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Conv", "size=128x128x3"] 1.06 (5%) ❌ 1.00 (1%)
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Conv", "size=28x28x3"] 0.95 (5%) ✅ 1.00 (1%)
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Conv", "size=28x28x3"] 1.08 (5%) ❌ 1.00 (1%)
["bench_jogger.jl", "Jacobian", "Local", "Set", "Conv", "size=128x128x3"] 0.88 (5%) ✅ 1.00 (1%)
["bench_jogger.jl", "OptimizationProblems", "britgas", "Hessian"] 0.23 (5%) ✅ 1.00 (1%)
["bench_jogger.jl", "OptimizationProblems", "britgas", "Jacobian"] 0.93 (5%) ✅ 1.00 (1%)

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "Set", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "Set", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Conv"]
  • ["bench_jogger.jl", "OptimizationProblems", "britgas"]

Julia versioninfo

Target

Julia Version 1.10.4
Commit 48d4fd48430 (2024-06-04 10:41 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
      Ubuntu 22.04.4 LTS
  uname: Linux 6.5.0-1022-azure #23~22.04.1-Ubuntu SMP Thu May  9 17:59:24 UTC 2024 x86_64 x86_64
  CPU: AMD EPYC 7763 64-Core Processor: 
              speed         user         nice          sys         idle          irq
       #1  2614 MHz       7021 s          0 s        578 s      16989 s          0 s
       #2  2445 MHz       7577 s          0 s        519 s      16488 s          0 s
       #3  3243 MHz       7159 s          0 s        551 s      16870 s          0 s
       #4  3236 MHz       6036 s          0 s        450 s      18098 s          0 s
  Memory: 15.606491088867188 GB (13114.59375 MB free)
  Uptime: 2465.44 sec
  Load Avg:  1.02  1.03  1.0
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)

Baseline

Julia Version 1.10.4
Commit 48d4fd48430 (2024-06-04 10:41 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
      Ubuntu 22.04.4 LTS
  uname: Linux 6.5.0-1022-azure #23~22.04.1-Ubuntu SMP Thu May  9 17:59:24 UTC 2024 x86_64 x86_64
  CPU: AMD EPYC 7763 64-Core Processor: 
              speed         user         nice          sys         idle          irq
       #1  3243 MHz      10428 s          0 s        764 s      22976 s          0 s
       #2  2445 MHz      10079 s          0 s        708 s      23375 s          0 s
       #3  2604 MHz       9546 s          0 s        736 s      23878 s          0 s
       #4  2445 MHz       6977 s          0 s        604 s      26578 s          0 s
  Memory: 15.606491088867188 GB (13226.71875 MB free)
  Uptime: 3425.31 sec
  Load Avg:  1.0  1.0  1.0
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)

Target result

Benchmark Report for /home/runner/work/SparseConnectivityTracer.jl/SparseConnectivityTracer.jl

Job Properties

  • Time of benchmark: 26 Jun 2024 - 14:44
  • Package commit: 5643e2
  • Julia commit: 48d4fd
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 46.837 ms (5%) 67.95 MiB (1%) 106983
["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 201.596 ms (5%) 6.576 ms 345.61 MiB (1%) 287593
["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 65.147 ms (5%) 1.856 ms 93.83 MiB (1%) 83773
["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 5.718 ms (5%) 14.72 MiB (1%) 21193
["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 512.820 ms (5%) 30.790 ms 1.16 GiB (1%) 792458
["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 218.009 ms (5%) 8.334 ms 420.94 MiB (1%) 450196
["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 146.399 ms (5%) 7.232 ms 248.63 MiB (1%) 719776
["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 5.729 ms (5%) 15.91 MiB (1%) 15210
["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 354.004 ms (5%) 25.267 ms 751.92 MiB (1%) 633996
["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 225.282 ms (5%) 7.598 ms 384.46 MiB (1%) 691552
["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 159.891 ms (5%) 11.410 ms 311.14 MiB (1%) 949079
["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 7.273 ms (5%) 19.82 MiB (1%) 54599
["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 50.547 ms (5%) 73.10 MiB (1%) 128837
["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 230.647 ms (5%) 7.011 ms 380.60 MiB (1%) 316463
["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 68.155 ms (5%) 2.053 ms 97.21 MiB (1%) 85579
["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 7.197 ms (5%) 14.98 MiB (1%) 22390
["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 45.223 ms (5%) 65.74 MiB (1%) 85074
["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 200.939 ms (5%) 4.973 ms 342.18 MiB (1%) 218044
["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 58.927 ms (5%) 86.42 MiB (1%) 49440
["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 5.295 ms (5%) 10.79 MiB (1%) 14838
["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 46.970 ms (5%) 67.96 MiB (1%) 106984
["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 202.522 ms (5%) 6.452 ms 345.76 MiB (1%) 287595
["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 65.306 ms (5%) 1.932 ms 94.86 MiB (1%) 84148
["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 5.567 ms (5%) 12.24 MiB (1%) 21112
["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 516.442 ms (5%) 30.039 ms 1.16 GiB (1%) 792459
["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 218.910 ms (5%) 8.395 ms 421.08 MiB (1%) 450198
["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 150.801 ms (5%) 7.074 ms 256.22 MiB (1%) 726064
["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 5.452 ms (5%) 14.03 MiB (1%) 15029
["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 352.913 ms (5%) 22.207 ms 751.92 MiB (1%) 633997
["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 227.069 ms (5%) 10.270 ms 384.61 MiB (1%) 691554
["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 159.376 ms (5%) 11.373 ms 314.56 MiB (1%) 941042
["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 6.764 ms (5%) 15.56 MiB (1%) 54200
["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 50.588 ms (5%) 73.11 MiB (1%) 128838
["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 233.094 ms (5%) 8.600 ms 380.75 MiB (1%) 316465
["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 68.979 ms (5%) 2.004 ms 99.08 MiB (1%) 85656
["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 7.237 ms (5%) 15.47 MiB (1%) 22362
["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 45.487 ms (5%) 65.75 MiB (1%) 85075
["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 201.673 ms (5%) 5.574 ms 342.32 MiB (1%) 218046
["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 59.439 ms (5%) 88.52 MiB (1%) 49480
["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 5.803 ms (5%) 14.52 MiB (1%) 15151
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "ODE", "N=24"] 2.559 ms (5%) 5.81 MiB (1%) 59352
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "ODE", "N=6"] 139.720 μs (5%) 255.66 KiB (1%) 2851
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "operator", "N=24"] 935.993 μs (5%) 2.05 MiB (1%) 22266
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "operator", "N=6"] 51.145 μs (5%) 101.25 KiB (1%) 1180
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Conv", "size=128x128x3"] 3.454 s (5%) 1.678 s 18.61 GiB (1%) 11476655
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Conv", "size=28x28x3"] 20.061 ms (5%) 63.25 MiB (1%) 414348
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 7.451 μs (5%) 14.05 KiB (1%) 127
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 278.960 μs (5%) 536.88 KiB (1%) 5955
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "ODE", "N=24"] 18.061 ms (5%) 30.12 MiB (1%) 175237
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "ODE", "N=6"] 1.106 ms (5%) 1.89 MiB (1%) 11057
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "operator", "N=24"] 3.570 ms (5%) 4.33 MiB (1%) 41514
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "operator", "N=6"] 220.341 μs (5%) 277.88 KiB (1%) 2620
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Conv", "size=128x128x3"] 1.216 s (5%) 86.820 ms 1.02 GiB (1%) 4662061
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Conv", "size=28x28x3"] 37.259 ms (5%) 41.58 MiB (1%) 175248
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 6.630 μs (5%) 10.75 KiB (1%) 73
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 159.218 ms (5%) 4.830 ms 759.24 MiB (1%) 29540
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "ODE", "N=24"] 54.532 ms (5%) 25.95 MiB (1%) 214413
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "ODE", "N=6"] 3.354 ms (5%) 1.63 MiB (1%) 13513
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "operator", "N=24"] 3.425 ms (5%) 5.12 MiB (1%) 55338
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "operator", "N=6"] 204.220 μs (5%) 328.50 KiB (1%) 3484
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Conv", "size=128x128x3"] 13.162 s (5%) 1.922 s 10.21 GiB (1%) 50889199
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Conv", "size=28x28x3"] 388.159 ms (5%) 30.053 ms 384.42 MiB (1%) 1892002
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 12.213 μs (5%) 33.58 KiB (1%) 371
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 17.041 s (5%) 10.29 MiB (1%) 41872
["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "ODE", "N=24"] 11.843 ms (5%) 19.02 MiB (1%) 129165
["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "ODE", "N=6"] 663.817 μs (5%) 1.20 MiB (1%) 8185
["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "operator", "N=24"] 2.201 ms (5%) 3.96 MiB (1%) 36906
["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "operator", "N=6"] 117.579 μs (5%) 254.25 KiB (1%) 2332
["bench_jogger.jl", "Jacobian", "Global", "Set", "Conv", "size=128x128x3"] 3.230 s (5%) 730.442 ms 3.68 GiB (1%) 24650689
["bench_jogger.jl", "Jacobian", "Global", "Set", "Conv", "size=28x28x3"] 95.610 ms (5%) 7.120 ms 144.32 MiB (1%) 925914
["bench_jogger.jl", "Jacobian", "Global", "Set", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 11.441 μs (5%) 31.14 KiB (1%) 261
["bench_jogger.jl", "Jacobian", "Global", "Set", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 4.209 ms (5%) 8.31 MiB (1%) 24548
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "ODE", "N=24"] 1.889 ms (5%) 4.21 MiB (1%) 22021
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "ODE", "N=6"] 135.352 μs (5%) 277.41 KiB (1%) 1481
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "operator", "N=24"] 600.326 μs (5%) 1.24 MiB (1%) 9258
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "operator", "N=6"] 38.652 μs (5%) 80.44 KiB (1%) 604
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Conv", "size=128x128x3"] 718.559 ms (5%) 84.118 ms 1.02 GiB (1%) 4662061
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Conv", "size=28x28x3"] 20.186 ms (5%) 41.58 MiB (1%) 175248
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 7.354 μs (5%) 12.30 KiB (1%) 84
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 601.232 μs (5%) 1.95 MiB (1%) 2952
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "ODE", "N=24"] 2.599 ms (5%) 5.91 MiB (1%) 59356
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "ODE", "N=6"] 143.938 μs (5%) 261.92 KiB (1%) 2853
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "operator", "N=24"] 974.977 μs (5%) 2.10 MiB (1%) 22270
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "operator", "N=6"] 53.500 μs (5%) 104.78 KiB (1%) 1182
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Conv", "size=128x128x3"] 2.977 s (5%) 1.247 s 18.61 GiB (1%) 11476661
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Conv", "size=28x28x3"] 20.188 ms (5%) 63.34 MiB (1%) 414354
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 8.085 μs (5%) 19.09 KiB (1%) 131
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 275.183 μs (5%) 535.67 KiB (1%) 5859
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "ODE", "N=24"] 18.122 ms (5%) 30.22 MiB (1%) 175241
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "ODE", "N=6"] 1.115 ms (5%) 1.90 MiB (1%) 11059
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "operator", "N=24"] 3.570 ms (5%) 4.38 MiB (1%) 41518
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "operator", "N=6"] 221.503 μs (5%) 281.41 KiB (1%) 2622
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Conv", "size=128x128x3"] 1.226 s (5%) 96.342 ms 1.02 GiB (1%) 4662067
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Conv", "size=28x28x3"] 37.393 ms (5%) 41.67 MiB (1%) 175254
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 8.315 μs (5%) 17.30 KiB (1%) 87
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 192.326 ms (5%) 5.848 ms 992.60 MiB (1%) 29771
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "ODE", "N=24"] 54.287 ms (5%) 26.04 MiB (1%) 214417
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "ODE", "N=6"] 3.354 ms (5%) 1.64 MiB (1%) 13515
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "operator", "N=24"] 3.458 ms (5%) 5.17 MiB (1%) 55342
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "operator", "N=6"] 206.545 μs (5%) 332.03 KiB (1%) 3486
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Conv", "size=128x128x3"] 13.763 s (5%) 2.384 s 10.21 GiB (1%) 50889205
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Conv", "size=28x28x3"] 398.167 ms (5%) 33.234 ms 384.51 MiB (1%) 1892008
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 11.421 μs (5%) 36.00 KiB (1%) 348
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 20.472 s (5%) 8.68 MiB (1%) 38963
["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "ODE", "N=24"] 11.812 ms (5%) 19.12 MiB (1%) 129169
["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "ODE", "N=6"] 666.873 μs (5%) 1.20 MiB (1%) 8187
["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "operator", "N=24"] 2.206 ms (5%) 4.01 MiB (1%) 36910
["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "operator", "N=6"] 117.950 μs (5%) 257.78 KiB (1%) 2334
["bench_jogger.jl", "Jacobian", "Local", "Set", "Conv", "size=128x128x3"] 2.916 s (5%) 362.320 ms 3.69 GiB (1%) 24650695
["bench_jogger.jl", "Jacobian", "Local", "Set", "Conv", "size=28x28x3"] 96.214 ms (5%) 7.995 ms 144.41 MiB (1%) 925920
["bench_jogger.jl", "Jacobian", "Local", "Set", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 12.163 μs (5%) 37.52 KiB (1%) 273
["bench_jogger.jl", "Jacobian", "Local", "Set", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 4.231 ms (5%) 8.49 MiB (1%) 25180
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "ODE", "N=24"] 1.918 ms (5%) 4.31 MiB (1%) 22025
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "ODE", "N=6"] 137.897 μs (5%) 283.67 KiB (1%) 1483
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "operator", "N=24"] 615.777 μs (5%) 1.30 MiB (1%) 9262
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "operator", "N=6"] 39.964 μs (5%) 83.97 KiB (1%) 606
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Conv", "size=128x128x3"] 754.985 ms (5%) 91.909 ms 1.02 GiB (1%) 4662067
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Conv", "size=28x28x3"] 20.318 ms (5%) 41.67 MiB (1%) 175254
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 7.081 μs (5%) 15.84 KiB (1%) 77
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 605.358 μs (5%) 1.94 MiB (1%) 2964
["bench_jogger.jl", "OptimizationProblems", "britgas", "Hessian"] 5.384 ms (5%) 10.40 MiB (1%) 34692
["bench_jogger.jl", "OptimizationProblems", "britgas", "Jacobian"] 288.447 μs (5%) 455.97 KiB (1%) 5666

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "BitSet", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "Set", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "Set", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "BitSet", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "Set", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "Set", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "SparseMul"]
  • ["bench_jogger.jl", "OptimizationProblems", "britgas"]

Julia versioninfo

Julia Version 1.10.4
Commit 48d4fd48430 (2024-06-04 10:41 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
      Ubuntu 22.04.4 LTS
  uname: Linux 6.5.0-1022-azure #23~22.04.1-Ubuntu SMP Thu May  9 17:59:24 UTC 2024 x86_64 x86_64
  CPU: AMD EPYC 7763 64-Core Processor: 
              speed         user         nice          sys         idle          irq
       #1  2614 MHz       7021 s          0 s        578 s      16989 s          0 s
       #2  2445 MHz       7577 s          0 s        519 s      16488 s          0 s
       #3  3243 MHz       7159 s          0 s        551 s      16870 s          0 s
       #4  3236 MHz       6036 s          0 s        450 s      18098 s          0 s
  Memory: 15.606491088867188 GB (13114.59375 MB free)
  Uptime: 2465.44 sec
  Load Avg:  1.02  1.03  1.0
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)

Baseline result

Benchmark Report for /home/runner/work/SparseConnectivityTracer.jl/SparseConnectivityTracer.jl

Job Properties

  • Time of benchmark: 26 Jun 2024 - 15:0
  • Package commit: b56207
  • Julia commit: 48d4fd
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 48.262 ms (5%) 67.95 MiB (1%) 106983
["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 206.070 ms (5%) 6.873 ms 345.61 MiB (1%) 287593
["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 64.276 ms (5%) 91.38 MiB (1%) 83574
["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 5.410 ms (5%) 10.92 MiB (1%) 20921
["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 532.490 ms (5%) 32.772 ms 1.16 GiB (1%) 792458
["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 220.629 ms (5%) 8.531 ms 420.94 MiB (1%) 450196
["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 149.382 ms (5%) 7.255 ms 247.56 MiB (1%) 717772
["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 5.229 ms (5%) 12.00 MiB (1%) 14865
["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 358.927 ms (5%) 24.963 ms 751.92 MiB (1%) 633996
["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 238.258 ms (5%) 11.983 ms 384.46 MiB (1%) 691552
["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 161.975 ms (5%) 9.941 ms 317.42 MiB (1%) 955998
["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 6.808 ms (5%) 14.01 MiB (1%) 54049
["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 51.463 ms (5%) 73.10 MiB (1%) 128837
["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 237.329 ms (5%) 8.535 ms 380.60 MiB (1%) 316463
["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 67.908 ms (5%) 100.22 MiB (1%) 85899
["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 7.164 ms (5%) 15.19 MiB (1%) 22554
["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 46.904 ms (5%) 65.74 MiB (1%) 85074
["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 204.846 ms (5%) 6.241 ms 342.18 MiB (1%) 218044
["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 64.399 ms (5%) 1.886 ms 95.40 MiB (1%) 49987
["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 5.425 ms (5%) 11.34 MiB (1%) 14960
["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 48.584 ms (5%) 67.96 MiB (1%) 106984
["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 204.889 ms (5%) 6.447 ms 345.76 MiB (1%) 287595
["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 66.632 ms (5%) 1.950 ms 94.21 MiB (1%) 83949
["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 5.904 ms (5%) 14.50 MiB (1%) 21196
["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 528.950 ms (5%) 31.447 ms 1.16 GiB (1%) 792459
["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 220.965 ms (5%) 7.875 ms 421.08 MiB (1%) 450198
["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 148.594 ms (5%) 7.107 ms 249.54 MiB (1%) 723730
["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 6.011 ms (5%) 18.24 MiB (1%) 15400
["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 363.785 ms (5%) 27.944 ms 751.92 MiB (1%) 633997
["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 243.801 ms (5%) 11.634 ms 384.61 MiB (1%) 691554
["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 165.044 ms (5%) 11.149 ms 322.99 MiB (1%) 960000
["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 6.977 ms (5%) 15.44 MiB (1%) 54227
["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 52.172 ms (5%) 73.11 MiB (1%) 128838
["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 235.098 ms (5%) 6.709 ms 380.75 MiB (1%) 316465
["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 70.444 ms (5%) 2.134 ms 99.61 MiB (1%) 85882
["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 7.132 ms (5%) 14.59 MiB (1%) 22381
["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "ArrowHead", (:(N = 200), :(K = 16))] 46.759 ms (5%) 65.75 MiB (1%) 85075
["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "ArrowHead", (:(N = 3200), :(K = 2))] 205.238 ms (5%) 7.087 ms 342.32 MiB (1%) 218046
["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "RandomSparsity", (:(N = 100), :(K = 32))] 63.239 ms (5%) 1.856 ms 93.64 MiB (1%) 50089
["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "RandomSparsity", (:(N = 400), :(K = 2))] 5.403 ms (5%) 10.99 MiB (1%) 14853
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "ODE", "N=24"] 2.640 ms (5%) 5.81 MiB (1%) 59352
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "ODE", "N=6"] 145.621 μs (5%) 255.66 KiB (1%) 2851
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "operator", "N=24"] 996.315 μs (5%) 2.05 MiB (1%) 22266
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "operator", "N=6"] 54.071 μs (5%) 101.25 KiB (1%) 1180
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Conv", "size=128x128x3"] 2.618 s (5%) 459.342 ms 18.61 GiB (1%) 11476655
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Conv", "size=28x28x3"] 19.863 ms (5%) 63.25 MiB (1%) 414348
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 8.336 μs (5%) 15.17 KiB (1%) 145
["bench_jogger.jl", "Jacobian", "Global", "BitSet", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 293.667 μs (5%) 544.62 KiB (1%) 6079
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "ODE", "N=24"] 17.920 ms (5%) 30.12 MiB (1%) 175237
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "ODE", "N=6"] 1.080 ms (5%) 1.89 MiB (1%) 11057
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "operator", "N=24"] 3.531 ms (5%) 4.33 MiB (1%) 41514
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "operator", "N=6"] 215.161 μs (5%) 277.88 KiB (1%) 2620
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Conv", "size=128x128x3"] 1.131 s (5%) 76.025 ms 1.02 GiB (1%) 4662061
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Conv", "size=28x28x3"] 36.862 ms (5%) 41.58 MiB (1%) 175248
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 7.424 μs (5%) 12.70 KiB (1%) 89
["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 532.225 ms (5%) 353.024 ms 877.26 MiB (1%) 29667
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "ODE", "N=24"] 53.845 ms (5%) 25.95 MiB (1%) 214413
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "ODE", "N=6"] 3.305 ms (5%) 1.63 MiB (1%) 13513
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "operator", "N=24"] 3.455 ms (5%) 5.12 MiB (1%) 55338
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "operator", "N=6"] 204.711 μs (5%) 328.50 KiB (1%) 3484
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Conv", "size=128x128x3"] 13.308 s (5%) 2.242 s 10.21 GiB (1%) 50889199
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Conv", "size=28x28x3"] 367.900 ms (5%) 23.630 ms 384.42 MiB (1%) 1892002
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 10.740 μs (5%) 31.14 KiB (1%) 348
["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 22.828 s (5%) 8.68 MiB (1%) 39009
["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "ODE", "N=24"] 12.080 ms (5%) 19.02 MiB (1%) 129165
["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "ODE", "N=6"] 647.716 μs (5%) 1.20 MiB (1%) 8185
["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "operator", "N=24"] 2.156 ms (5%) 3.96 MiB (1%) 36906
["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "operator", "N=6"] 115.906 μs (5%) 254.25 KiB (1%) 2332
["bench_jogger.jl", "Jacobian", "Global", "Set", "Conv", "size=128x128x3"] 3.194 s (5%) 723.358 ms 3.68 GiB (1%) 24650689
["bench_jogger.jl", "Jacobian", "Global", "Set", "Conv", "size=28x28x3"] 98.535 ms (5%) 7.687 ms 144.32 MiB (1%) 925914
["bench_jogger.jl", "Jacobian", "Global", "Set", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 11.641 μs (5%) 32.59 KiB (1%) 271
["bench_jogger.jl", "Jacobian", "Global", "Set", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 4.252 ms (5%) 8.46 MiB (1%) 25034
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "ODE", "N=24"] 1.887 ms (5%) 4.21 MiB (1%) 22021
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "ODE", "N=6"] 133.779 μs (5%) 277.41 KiB (1%) 1481
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "operator", "N=24"] 599.907 μs (5%) 1.24 MiB (1%) 9258
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "operator", "N=6"] 39.233 μs (5%) 80.44 KiB (1%) 604
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Conv", "size=128x128x3"] 692.596 ms (5%) 98.628 ms 1.02 GiB (1%) 4662061
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Conv", "size=28x28x3"] 20.024 ms (5%) 41.58 MiB (1%) 175248
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 6.262 μs (5%) 10.52 KiB (1%) 70
["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 581.553 μs (5%) 1.99 MiB (1%) 3006
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "ODE", "N=24"] 2.728 ms (5%) 5.91 MiB (1%) 59356
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "ODE", "N=6"] 152.014 μs (5%) 261.92 KiB (1%) 2853
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "operator", "N=24"] 1.019 ms (5%) 2.10 MiB (1%) 22270
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "operator", "N=6"] 56.696 μs (5%) 104.78 KiB (1%) 1182
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Conv", "size=128x128x3"] 2.800 s (5%) 517.597 ms 18.61 GiB (1%) 11476661
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Conv", "size=28x28x3"] 21.339 ms (5%) 63.34 MiB (1%) 414354
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 8.225 μs (5%) 19.47 KiB (1%) 137
["bench_jogger.jl", "Jacobian", "Local", "BitSet", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 307.252 μs (5%) 546.80 KiB (1%) 6037
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "ODE", "N=24"] 18.093 ms (5%) 30.22 MiB (1%) 175241
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "ODE", "N=6"] 1.092 ms (5%) 1.90 MiB (1%) 11059
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "operator", "N=24"] 3.552 ms (5%) 4.38 MiB (1%) 41518
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "operator", "N=6"] 217.596 μs (5%) 281.41 KiB (1%) 2622
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Conv", "size=128x128x3"] 1.186 s (5%) 118.613 ms 1.02 GiB (1%) 4662067
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Conv", "size=28x28x3"] 36.888 ms (5%) 41.67 MiB (1%) 175254
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 7.384 μs (5%) 17.45 KiB (1%) 89
["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 183.640 ms (5%) 6.386 ms 821.71 MiB (1%) 29644
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "ODE", "N=24"] 54.121 ms (5%) 26.04 MiB (1%) 214417
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "ODE", "N=6"] 3.339 ms (5%) 1.64 MiB (1%) 13515
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "operator", "N=24"] 3.505 ms (5%) 5.17 MiB (1%) 55342
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "operator", "N=6"] 205.843 μs (5%) 332.03 KiB (1%) 3486
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Conv", "size=128x128x3"] 13.445 s (5%) 2.206 s 10.21 GiB (1%) 50889205
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Conv", "size=28x28x3"] 369.472 ms (5%) 26.580 ms 384.51 MiB (1%) 1892008
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 11.391 μs (5%) 36.06 KiB (1%) 350
["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 18.934 s (5%) 11.42 MiB (1%) 44095
["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "ODE", "N=24"] 11.943 ms (5%) 19.12 MiB (1%) 129169
["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "ODE", "N=6"] 656.995 μs (5%) 1.20 MiB (1%) 8187
["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "operator", "N=24"] 2.162 ms (5%) 4.01 MiB (1%) 36910
["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "operator", "N=6"] 117.920 μs (5%) 257.78 KiB (1%) 2334
["bench_jogger.jl", "Jacobian", "Local", "Set", "Conv", "size=128x128x3"] 3.299 s (5%) 763.828 ms 3.69 GiB (1%) 24650695
["bench_jogger.jl", "Jacobian", "Local", "Set", "Conv", "size=28x28x3"] 96.876 ms (5%) 7.499 ms 144.41 MiB (1%) 925920
["bench_jogger.jl", "Jacobian", "Local", "Set", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 10.980 μs (5%) 34.89 KiB (1%) 251
["bench_jogger.jl", "Jacobian", "Local", "Set", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 4.196 ms (5%) 8.49 MiB (1%) 25159
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "ODE", "N=24"] 1.966 ms (5%) 4.31 MiB (1%) 22025
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "ODE", "N=6"] 139.199 μs (5%) 283.67 KiB (1%) 1483
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "operator", "N=24"] 622.800 μs (5%) 1.30 MiB (1%) 9262
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "operator", "N=6"] 40.155 μs (5%) 83.97 KiB (1%) 606
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Conv", "size=128x128x3"] 734.857 ms (5%) 88.887 ms 1.02 GiB (1%) 4662067
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Conv", "size=28x28x3"] 20.845 ms (5%) 41.67 MiB (1%) 175254
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "SparseMul", (:(n = 50), :(p = 0.01), :(depth = 5))] 7.364 μs (5%) 17.28 KiB (1%) 87
["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "SparseMul", (:(n = 50), :(p = 0.25), :(depth = 5))] 571.715 μs (5%) 1.94 MiB (1%) 2934
["bench_jogger.jl", "OptimizationProblems", "britgas", "Hessian"] 23.610 ms (5%) 17.827 ms 10.40 MiB (1%) 34692
["bench_jogger.jl", "OptimizationProblems", "britgas", "Jacobian"] 309.186 μs (5%) 455.97 KiB (1%) 5666

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Global", ("BitSet", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Global", ("DuplicateVector", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Global", ("RecursiveSet", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Global", ("Set", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Global", ("SortedVector", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Local", ("BitSet", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Local", ("DuplicateVector", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Local", ("RecursiveSet", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Local", ("Set", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "ArrowHead"]
  • ["bench_jogger.jl", "Hessian", "Local", ("SortedVector", "Set"), "RandomSparsity"]
  • ["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "BitSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "BitSet", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "DuplicateVector", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "RecursiveSet", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "Set", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "Set", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "Set", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Global", "SortedVector", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "BitSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "BitSet", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "DuplicateVector", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "RecursiveSet", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "Set", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "Set", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "Set", "SparseMul"]
  • ["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "ODE"]
  • ["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Brusselator", "operator"]
  • ["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "Conv"]
  • ["bench_jogger.jl", "Jacobian", "Local", "SortedVector", "SparseMul"]
  • ["bench_jogger.jl", "OptimizationProblems", "britgas"]

Julia versioninfo

Julia Version 1.10.4
Commit 48d4fd48430 (2024-06-04 10:41 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
      Ubuntu 22.04.4 LTS
  uname: Linux 6.5.0-1022-azure #23~22.04.1-Ubuntu SMP Thu May  9 17:59:24 UTC 2024 x86_64 x86_64
  CPU: AMD EPYC 7763 64-Core Processor: 
              speed         user         nice          sys         idle          irq
       #1  3243 MHz      10428 s          0 s        764 s      22976 s          0 s
       #2  2445 MHz      10079 s          0 s        708 s      23375 s          0 s
       #3  2604 MHz       9546 s          0 s        736 s      23878 s          0 s
       #4  2445 MHz       6977 s          0 s        604 s      26578 s          0 s
  Memory: 15.606491088867188 GB (13226.71875 MB free)
  Uptime: 3425.31 sec
  Load Avg:  1.0  1.0  1.0
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() lbt
Sys.CPU_THREADS 4

lscpu output:

Architecture:                       x86_64
CPU op-mode(s):                     32-bit, 64-bit
Address sizes:                      48 bits physical, 48 bits virtual
Byte Order:                         Little Endian
CPU(s):                             4
On-line CPU(s) list:                0-3
Vendor ID:                          AuthenticAMD
Model name:                         AMD EPYC 7763 64-Core Processor
CPU family:                         25
Model:                              1
Thread(s) per core:                 2
Core(s) per socket:                 2
Socket(s):                          1
Stepping:                           1
BogoMIPS:                           4890.86
Flags:                              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext invpcid_single vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves clzero xsaveerptr rdpru arat npt nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold v_vmsave_vmload umip vaes vpclmulqdq rdpid fsrm
Virtualization:                     AMD-V
Hypervisor vendor:                  Microsoft
Virtualization type:                full
L1d cache:                          64 KiB (2 instances)
L1i cache:                          64 KiB (2 instances)
L2 cache:                           1 MiB (2 instances)
L3 cache:                           32 MiB (1 instance)
NUMA node(s):                       1
NUMA node0 CPU(s):                  0-3
Vulnerability Gather data sampling: Not affected
Vulnerability Itlb multihit:        Not affected
Vulnerability L1tf:                 Not affected
Vulnerability Mds:                  Not affected
Vulnerability Meltdown:             Not affected
Vulnerability Mmio stale data:      Not affected
Vulnerability Retbleed:             Not affected
Vulnerability Spec rstack overflow: Vulnerable: Safe RET, no microcode
Vulnerability Spec store bypass:    Vulnerable
Vulnerability Spectre v1:           Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:           Mitigation; Retpolines; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected
Vulnerability Srbds:                Not affected
Vulnerability Tsx async abort:      Not affected
Cpu Property Value
Brand AMD EPYC 7763 64-Core Processor
Vendor :AMD
Architecture :Unknown
Model Family: 0xaf, Model: 0x01, Stepping: 0x01, Type: 0x00
Cores 16 physical cores, 16 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 512, 32768) kbytes
64 byte cache line size
Address Size 48 bits virtual, 48 bits physical
SIMD 256 bit = 32 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC runs at constant rate (invariant from clock frequency)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

@adrhill adrhill removed the run benchmark Run benchmarks in CI label Jun 26, 2024
@adrhill
Copy link
Owner Author

adrhill commented Jun 26, 2024

Benchmarks show no regression and the only failing test is JET:
image

I'm not sure what the issue is.

EDIT: Should be fixed with ec8a9c3.

@adrhill adrhill requested a review from gdalle June 26, 2024 15:07
src/patterns.jl Show resolved Hide resolved
src/patterns.jl Show resolved Hide resolved
src/patterns.jl Outdated Show resolved Hide resolved
src/patterns.jl Outdated Show resolved Hide resolved
src/patterns.jl Outdated
## Fields
$(TYPEDFIELDS)
"""
struct IndexSetVectorPattern{I<:Integer,S<:AbstractSet{I}} <: AbstractVectorPattern
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can use this PR to remove AbstractSet subtyping (because again, our custom types don't satisfy every assumption) and use duck-typing for that stuff

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My idea is that stuff like DuplicateVector gets to be a DuplicatePattern in the future.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay that's fair. But then we should temporarily remove it from the API if we're gonna change its place in the hierarchy

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean before tagging a release?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, let's not tag a release where DuplicateVector is an abstract set and then change it right away to a pattern

src/tracers.jl Outdated Show resolved Hide resolved
@adrhill
Copy link
Owner Author

adrhill commented Jun 27, 2024

Let's drop ConnectivityTracer in a follow-up PR. I will rename new features in here accordingly. That should make it easier to revert the removal in case anyone ever wants ConnectivityTracer back.

I will merge this PR without input size information to avoid feature creep. However, I will refrain from tagging a release without it.

@adrhill adrhill closed this Jun 27, 2024
@adrhill adrhill reopened this Jun 27, 2024
@adrhill adrhill merged commit f662af1 into main Jun 27, 2024
6 checks passed
@adrhill adrhill deleted the ah/patterns2 branch June 27, 2024 15:12
adrhill added a commit that referenced this pull request Jun 27, 2024
adrhill added a commit that referenced this pull request Jul 30, 2024
* Add shared Hessian tracer à la Walther

* Add identical objects test

* Fixes for patterns introduced in #139

* Clarify connection between mutation and sharing

---------

Co-authored-by: adrhill <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
patterns Features regarding sparsity pattern representation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants